This disclosure relates to a method of programming a nonvolatile semiconductor memory device and, more particularly, to a method of programming a NAND-type flash memory device.
Semiconductor memory devices may be largely classified into volatile semiconductor memory devices and nonvolatile semiconductor memory devices. A volatile semiconductor memory device may store data due to a logic state of a bistable flip-flop or the charging or discharging of a capacitor. The volatile semiconductor memory device may store or read data when a power is supplied and lose the stored data when the power is interrupted.
A nonvolatile semiconductor memory device, such as an electrically erasable programmable read-only-memory (EEPROM), may store data even if power is interrupted. The nonvolatile semiconductor memory device may be used to store programs and data in a wide range of applications, such as computers and communication devices. Since an EEPROM is electrically erasable and programmable, the EEPROM is being widely used as a system programming device or auxiliary memory device that may need to be continuously updated. Among flash memory devices, a NAND-type flash memory device may be more highly integrated than a NOR-type flash memory device.
The NAND-type flash memory device may include a memory cell array to store data, and the memory cell array may include a plurality of cell strings (also called NAND strings). A memory cell of the NAND-type flash memory device may perform erase and program operations using a Fowler-Nordheim (F-N) tunneling current.
In general, an increase in storage capacity may reduce a program performance due to wide threshold voltage distribution of memory cells in the memory cell array. Accordingly, it is desirable to control a threshold voltage distribution of memory cells in order to improve the program performance.